{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import tensorflow as tf\n",
    "from tensorflow import keras\n",
    "from tensorflow.keras.models import Sequential\n",
    "from tensorflow.keras.layers import Activation, Dense, Flatten, BatchNormalization, Conv2D, MaxPool2D\n",
    "from tensorflow.keras.optimizers import Adam\n",
    "from tensorflow.keras.metrics import categorical_crossentropy\n",
    "from tensorflow.keras.preprocessing.image import ImageDataGenerator\n",
    "from sklearn.metrics import confusion_matrix\n",
    "import itertools\n",
    "import os\n",
    "import shutil\n",
    "import random\n",
    "import glob\n",
    "import matplotlib.pyplot as plt\n",
    "import warnings\n",
    "warnings.simplefilter(action='ignore', category=FutureWarning)\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [],
   "source": [
    "# Organize data into train, valid, test dirs\n",
    "os.chdir('/Users/mac/work/cv_learning/data/dogs-vs-cats/train_data')\n",
    "if os.path.isdir('train/dog') is False:\n",
    "    os.makedirs('train/dog')\n",
    "    os.makedirs('train/cat')\n",
    "    os.makedirs('valid/dog')\n",
    "    os.makedirs('valid/cat')\n",
    "    os.makedirs('test/dog')\n",
    "    os.makedirs('test/cat')\n",
    "\n",
    "    for i in random.sample(glob.glob('cat*'), 500):\n",
    "        shutil.move(i, 'train/cat')  \n",
    "\n",
    "    for i in random.sample(glob.glob('dog*'), 500):\n",
    "        shutil.move(i, 'train/dog')\n",
    "\n",
    "    for i in random.sample(glob.glob('cat*'), 100):\n",
    "        shutil.move(i, 'valid/cat')   \n",
    "\n",
    "    for i in random.sample(glob.glob('dog*'), 100):\n",
    "        shutil.move(i, 'valid/dog')\n",
    "\n",
    "    for i in random.sample(glob.glob('cat*'), 50):\n",
    "        shutil.move(i, 'test/cat')  \n",
    "\n",
    "    for i in random.sample(glob.glob('dog*'), 50):\n",
    "        shutil.move(i, 'test/dog')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_path = '/Users/mac/work/cv_learning/data/dogs-vs-cats/train_data/train'\n",
    "valid_path = '/Users/mac/work/cv_learning/data/dogs-vs-cats/train_data/valid'\n",
    "test_path  = '/Users/mac/work/cv_learning/data/dogs-vs-cats/train_data/test'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 1000 images belonging to 2 classes.\n",
      "Found 200 images belonging to 2 classes.\n",
      "Found 100 images belonging to 2 classes.\n"
     ]
    }
   ],
   "source": [
    "train_batches = ImageDataGenerator(preprocessing_function=tf.keras.applications.vgg16.preprocess_input) \\\n",
    "    .flow_from_directory(directory=train_path, target_size=(224,224), classes=['cat', 'dog'], batch_size=10)\n",
    "valid_batches = ImageDataGenerator(preprocessing_function=tf.keras.applications.vgg16.preprocess_input) \\\n",
    "    .flow_from_directory(directory=valid_path, target_size=(224,224), classes=['cat', 'dog'], batch_size=10)\n",
    "test_batches = ImageDataGenerator(preprocessing_function=tf.keras.applications.vgg16.preprocess_input) \\\n",
    "    .flow_from_directory(directory=test_path, target_size=(224,224), classes=['cat', 'dog'], batch_size=10, shuffle=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "imgs, labels = next(train_batches)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plotImages(images_arr):\n",
    "    fig, axes = plt.subplots(1, 10, figsize=(20,20))\n",
    "    axes = axes.flatten()\n",
    "    for img, ax in zip( images_arr, axes):\n",
    "        ax.imshow(img)\n",
    "        ax.axis('off')\n",
    "    plt.tight_layout()\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
      "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
      "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
      "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
      "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
      "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
      "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
      "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
      "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
      "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x1440 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[0. 1.]\n",
      " [1. 0.]\n",
      " [0. 1.]\n",
      " [0. 1.]\n",
      " [1. 0.]\n",
      " [0. 1.]\n",
      " [1. 0.]\n",
      " [1. 0.]\n",
      " [0. 1.]\n",
      " [1. 0.]]\n"
     ]
    }
   ],
   "source": [
    "plotImages(imgs)\n",
    "print(labels)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = Sequential([\n",
    "    Conv2D(filters=32, kernel_size=(3, 3), activation='relu', padding = 'same', input_shape=(224,224,3)),\n",
    "    MaxPool2D(pool_size=(2, 2), strides=2),\n",
    "    Conv2D(filters=64, kernel_size=(3, 3), activation='relu', padding = 'same'),\n",
    "    MaxPool2D(pool_size=(2, 2), strides=2),\n",
    "    Flatten(),\n",
    "    Dense(units=2, activation='softmax')\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential_1\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "conv2d_2 (Conv2D)            (None, 224, 224, 32)      896       \n",
      "_________________________________________________________________\n",
      "max_pooling2d_2 (MaxPooling2 (None, 112, 112, 32)      0         \n",
      "_________________________________________________________________\n",
      "conv2d_3 (Conv2D)            (None, 112, 112, 64)      18496     \n",
      "_________________________________________________________________\n",
      "max_pooling2d_3 (MaxPooling2 (None, 56, 56, 64)        0         \n",
      "_________________________________________________________________\n",
      "flatten_1 (Flatten)          (None, 200704)            0         \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 2)                 401410    \n",
      "=================================================================\n",
      "Total params: 420,802\n",
      "Trainable params: 420,802\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.compile(optimizer=Adam(learning_rate=0.0001), loss='categorical_crossentropy', metrics=['accuracy'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:sample_weight modes were coerced from\n",
      "  ...\n",
      "    to  \n",
      "  ['...']\n",
      "WARNING:tensorflow:sample_weight modes were coerced from\n",
      "  ...\n",
      "    to  \n",
      "  ['...']\n",
      "Train for 100 steps, validate for 20 steps\n",
      "Epoch 1/10\n",
      "100/100 - 19s - loss: 17.3775 - accuracy: 0.5250 - val_loss: 8.0651 - val_accuracy: 0.5900\n",
      "Epoch 2/10\n",
      "100/100 - 19s - loss: 3.9792 - accuracy: 0.7240 - val_loss: 2.5755 - val_accuracy: 0.6100\n",
      "Epoch 3/10\n",
      "100/100 - 19s - loss: 0.5570 - accuracy: 0.8860 - val_loss: 3.0624 - val_accuracy: 0.5650\n",
      "Epoch 4/10\n",
      "100/100 - 18s - loss: 0.0788 - accuracy: 0.9730 - val_loss: 2.2470 - val_accuracy: 0.6350\n",
      "Epoch 5/10\n",
      "100/100 - 19s - loss: 0.0183 - accuracy: 0.9930 - val_loss: 2.2016 - val_accuracy: 0.6450\n",
      "Epoch 6/10\n",
      "100/100 - 19s - loss: 0.0200 - accuracy: 0.9930 - val_loss: 2.1530 - val_accuracy: 0.6100\n",
      "Epoch 7/10\n",
      "100/100 - 19s - loss: 0.0022 - accuracy: 1.0000 - val_loss: 2.1627 - val_accuracy: 0.6050\n",
      "Epoch 8/10\n",
      "100/100 - 19s - loss: 7.8400e-04 - accuracy: 1.0000 - val_loss: 2.1401 - val_accuracy: 0.6100\n",
      "Epoch 9/10\n",
      "100/100 - 19s - loss: 6.2832e-04 - accuracy: 1.0000 - val_loss: 2.1419 - val_accuracy: 0.6150\n",
      "Epoch 10/10\n",
      "100/100 - 19s - loss: 5.3441e-04 - accuracy: 1.0000 - val_loss: 2.1508 - val_accuracy: 0.6200\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<tensorflow.python.keras.callbacks.History at 0x7fe6f9730350>"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.fit(x=train_batches, validation_data=valid_batches, epochs=10, verbose=2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "opencv",
   "language": "python",
   "name": "opencv"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
